Open Modules: Modular Reasoning in Aspect-Oriented Programming
نویسنده
چکیده
Aspect-oriented programming (AOP) is a new programming paradigm whose goal is to more cleanly modularize crosscutting concerns such as logging, synchronization, and event notification which would otherwise be scattered throughout the system and tangled with functional code. However, while AOP languages provide promising ways to separate crosscutting concerns, they can also break conventional encapsulation mechanisms, making it difficult to reason about code without the aid of external tools. We investigate modular reasoning in the presence of aspects through TinyAspect, a small functional language that directly models aspect-oriented programming constructs. We define OpenModules, amodule system for TinyAspect that enforces Reynolds’ abstraction theorem, a strong encapsulation property. Open Modules are “open” in that external aspects can advise functions and pointcuts in their interface, providing significant aspect-oriented expressiveness that is missing in non-AOP systems. In order to guarantee modular reasoning, however, our system places limits on advice: external aspects may not advise function calls internal to a module, except for calls explicitly exposed through pointcuts in the module’s interface. The abstraction property of our system ensures that a module’s implementation can be changed without affecting clients, and provides insight into formal reasoning, modular analysis, and tool support for aspect-oriented programming. 1
منابع مشابه
Open Modules: A Proposal for Modular Reasoning in Aspect-Oriented Programming
This paper makes two contributions to a formal understanding of aspect-oriented programming. First, we define TinyAspect, a formal model capturing core AOP concepts. Compared to previous formalizations of AOP constructs, TinyAspectis extremely small, models aspects at the source level, and is defined using structured operational semantics and syntax-directed typing rules. In combination, these ...
متن کاملOpen Modules: Modular Reasoning About Advice
Advice is a mechanism used by advanced object-oriented and aspect-oriented programming languages to augment the behavior of methods in a program. Advice can help to make programs more modular by separating crosscutting concerns more effectively, but it also challenges existing ideas about modularity and separate development. We study this challenge using a new, simple formal model for advice as...
متن کاملCombining Aspects and Modules Summary by Chosen Excerpts
We claim that it is not only possible – but also bene£cial – to combine powerful module constructs with aspect-oriented programming. By tempering the power of AOP with encapsulation boundaries maintained by a module system, the desirable qualities of both can be achieved, while tempering their respective weaknesses. Modules and Aspects are different approaches to a common goal of constructing l...
متن کاملTranslucid Contracts for Aspect-oriented Interfaces
There is some consensus in the aspect-oriented community that a notion of interface between joinpoints and advice may be necessary for improved modularity of aspect-oriented programs, for modular reasoning, and for overcoming pointcut fragility. Different approaches for adding such interfaces, such as aspect-aware interfaces, pointcut interfaces, crosscutting interfaces, explicit joinpoints, qu...
متن کاملEnhancing Modularity in Aspect-Oriented Software Systems-An Assessment Study
Aspect-oriented programming (AOP) is rapidly gaining popularity among research and industry as a methodology that complements and extends the object-oriented paradigm.AOP promises to localize the concerns that inherently crosscut the primary structural decomposition of a software system. Localization of concerns is critical to parallel development, maintainability, modular reasoning and program...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2004